////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                            //
//                                                         WNProject                                                          //
//                                                                                                                            //
//            This file is distributed under the BSD 2-Clause open source license. See License.txt for details.               //
//                                                                                                                            //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#pragma once

#ifndef __WN_MATH_CONFIG_H__
#define __WN_MATH_CONFIG_H__

//#define _WN_MATH_CONFIG_DISABLE_APPROXIMATIONS            // Disables all approximations
//#define _WN_MATH_CONFIG_DISABLE_EXTENSIONS                // Disables all extension for the current configuration
//#define _WN_MATH_CONFIG_DISABLE_RUNTIME_DETECTION         // Disables run-time detection of available extensions
//#define _WN_MATH_CONFIG_DISABLE_NON_STANDARD              // Disables all non-standard extension for the current configuration

// x86 Specific ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//#define _WN_MATH_CONFIG_FORCE_SSE                         // Forces SSE, MMX, 3DNow! and lower functionality
//#define _WN_MATH_CONFIG_FORCE_SSE2                        // Forces SSE2 and lower functionality
//#define _WN_MATH_CONFIG_FORCE_SSE3                        // Forces SSE3, SSSE3 and lower functionality
//#define _WN_MATH_CONFIG_FORCE_SSE4                        // Forces SSE4.1, SSE4a and lower functionality
//#define _WN_MATH_CONFIG_FORCE_AVX                         // Forces AVX, FMA3/4, F16C and lower functionality

//#define _WN_MATH_CONFIG_DISABLE_MMX                       // Disables MMX functionality
//#define _WN_MATH_CONFIG_DISABLE_3DNOW                     // Disables 3DNow! functionality (AMD only extension)
//#define _WN_MATH_CONFIG_DISABLE_SSSE3                     // Disables SSSE3 functionality
//#define _WN_MATH_CONFIG_DISABLE_SSE4_1                    // Disables SSE4.1 functionality
//#define _WN_MATH_CONFIG_DISABLE_SSE4A                     // Disables SSE4a functionality (AMD only extension)
//#define _WN_MATH_CONFIG_DISABLE_FMA3                      // Disables FMA3 functionality
//#define _WN_MATH_CONFIG_DISABLE_FMA4                      // Disables FMA4 functionality (AMD only extension)
//#define _WN_MATH_CONFIG_DISABLE_F16C                      // Disables F16C functionality

//#define _WN_MATH_CONFIG_ALLOW_FORCE_OF_NON_STANDARD       // Allows non-standard extensions to be forced

// ARM Specific ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//#define _WN_MATH_CONFIG_FORCE_VFP3                        // Forces VFP3 functionality
//#define _WN_MATH_CONFIG_FORCE_NEON                        // Forces NEON and lower functionality

#include "WNMath/inc/Internal/WNConfig.h"

#endif // __WN_MATH_CONFIG_H__